/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Traffic;

/**
 *
 * @author Matthew
 */
public class Settings
{
    //The width of a lane in squares
    public static final int LANE_WIDTH = 3;
    //The length of a lane before the intersection
    public static final int LANE_LENGTH = LANE_WIDTH * 20;
    //Minimum vehicle length
    public static final int VEHICLE_MIN_LENGTH = LANE_WIDTH;
    //Max vehicle length
    public static final int VEHICLE_MAX_LENGTH = 2 * LANE_WIDTH;
    //Distance to check ahead for blockages when deciding to overtake
    public static final int VEHICLE_OVERTAKE_DISTANCE = VEHICLE_MIN_LENGTH + 1;
    //The maximum number of lanes allowed in each direction
    public static final int MAX_LANES = 4;
    //Length of a Yellow Light
    public static final int YELLOW_LENGTH = LANE_WIDTH * (MAX_LANES + 1) * 3;
    //Length of a Red Light
    public static final int RED_LENGTH = LANE_WIDTH * 3;

    //The number of cycles that the current simulation has run
    public static int cyclesRun = 1;

    //Lanes
    public static int northLanes = 3;
    public static int southLanes = 4;
    public static int eastLanes = 2;
    public static int westLanes = 3;

    //Driver Types
    public static int slow = 33;
    public static int normal = 33;
    public static int fast = 33;

    //Turn chance
    public static int leftTurn = 12;
    public static int rightTurn = 12;

    //Speed limits
    public static int eastWestSpeed = 80;
    public static int northSouthSpeed = 40;

    //Vehicle spawn chance
    public static int northChance = 20;
    public static int southChance = 20;
    public static int eastChance = 20;
    public static int westChance = 20;

    //Vehicle breakdown variables
    public static int breakdownChance = 1;
    public static int breakdownDur = 100;
    public static final int BREAKDOWN_CHANCE_DENOMINATOR = 100000;

    //Traffic Light Durations
    public static int timeNS = 40;
    public static int timeEW = 40;
    public static int timeNSTurn = 10;
    public static int timeEWTurn = 10;

}
